package com.shxzz.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shxzz.shortlink.admin.dao.entity.GroupDO;
import com.shxzz.shortlink.admin.dto.req.GroupRegisterReqDTO;
import com.shxzz.shortlink.admin.dto.req.GroupSortReqDTO;
import com.shxzz.shortlink.admin.dto.req.GroupUpdateReqDTO;
import com.shxzz.shortlink.admin.dto.resp.GroupRespDTO;

import java.util.List;

/**
 * @author shxzz
 * @create 2023-12-14-14:53
 * @description 短链接分组接口层
 */
public interface GroupService extends IService<GroupDO> {

    /**
     * 短链接分组注册
     * @param requireParam 短链接分组注册参数
     */
    void register(GroupRegisterReqDTO requireParam);

    /**
     * 根据 用户名和分组名 注册分组
     * @param username 用户名
     * @param groupName 分组名
     */
    void registerGroup(String username, String groupName);

    /**
     * 查询当前用户所有分组信息
     * @return 分组信息
     */
    List<GroupRespDTO> findAllGroupInfo();

    /**
     * 短链接分组信息修改
     */
    void update(GroupUpdateReqDTO requireParam);

    /**
     * 删除短链接分组
     * @param gid 短链接分组 组 ID
     */
    void deleteGroup(String gid);

    /**
     * 短链接分组排序设置
     * @param requireParam 短链接分组次序信息
     */
    void sortGroup(List<GroupSortReqDTO> requireParam);
}
